{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import optimization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpredict import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "data=wineset1()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'input': (65.05470835865059, 13.77682548625741), 'result': 147.18021568468683}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "23.86555087916638"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knnestimate(data,(95.0,3.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "30.306122448979593"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wineprice(99.0,5.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "27.50835910991915"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weightedknn(data,(99.0,5.0))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "264.3448949465201"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knnestimate,data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "256.06657522346944"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knn3,data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "267.6701342918027"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knn1,data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "266.55346711015534"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(weightedknn,data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "247.74321414925743"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knninverse,data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2=wineset2()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2353.1372422979534"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knn3,data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1771.6488043165903"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(weightedknn,data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "sdata=rescale(data2,[10,10,0,0.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1656.3679863559937"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(knn3,sdata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1300.8592847414743"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "crossvalidate(weightedknn,sdata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[(0, 10), (0, 10), (0, 10), (0, 10)]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weightdomain=[(0,10)]*4\n",
    "weightdomain"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<function numpredict.createcostfunction.<locals>.costf(scale)>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "costf=createcostfunction(knnestimate,data2)\n",
    "costf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2, 3.0, 6.0, 10]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "2281.0178543855295"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res=optimization.annealingoptimize(weightdomain,costf,step=1)\n",
    "print(res)\n",
    "sdata=rescale(data2,res)\n",
    "crossvalidate(knn3,sdata)\n",
    "\n",
    "crossvalidate(weightedknn,sdata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2530.417326053426\n",
      "[1, 3, 1, 7]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "1614.7892786400575"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res=optimization.geneticoptimize(weightdomain,costf,popsize=5,elite=0.5,maxiter=20)\n",
    "print(res)\n",
    "sdata=rescale(data2,res)\n",
    "crossvalidate(knn3,sdata)\n",
    "\n",
    "crossvalidate(weightedknn,sdata)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pylab import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cumulativegraph(data,vec1,high,k=5,weightf=gaussian):\n",
    "\tt1=arange(0.0,high,0.1)\n",
    "\tcprob=array([probguess(data,vec1,0,v,k,weightf) for v in t1])\n",
    "\tplot(t1,cprob)\n",
    "\tshow()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def probabilitygraph(data,vec1,high,k=5,weightf=gaussian,ss=5.0):\n",
    "\t# Make a range for the prices\n",
    "\tt1=arange(0.0,high,0.1)\n",
    "\t\n",
    "\t# Get the probabilities for the entire range\n",
    "\tprobs=[probguess(data,vec1,v,v+0.1,k,weightf) for v in t1]\n",
    "\t\n",
    "\t# Smooth them by adding the gaussian of the nearby probabilites\n",
    "\tsmoothed=[]\n",
    "\tfor i in range(len(probs)):\n",
    "\t\tsv=0.0\n",
    "\t\tfor j in range(0,len(probs)):\n",
    "\t\t\tdist=abs(i-j)*0.1\n",
    "\t\t\tweight=gaussian(dist,sigma=ss)\n",
    "\t\t\tsv+=weight*probs[j]\n",
    "\t\tsmoothed.append(sv)\n",
    "\tsmoothed=array(smoothed)\n",
    "\t\t\n",
    "\tplot(t1,smoothed)\n",
    "\tshow()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAEZVJREFUeJzt3X+QXWddx/H3N0nTUmgbMNsC2YQEDEioluJaKqAWKJhWJvEP1HRgKFjIqFRQGLWdMlXrXwIjykwAI2D5ZWtBhB0mWJhaB/yRklSwtgmRNUCztJIUaGHotGmyX/+4Z8tlu8nezX0258e+XzM7e8+5z979Pjm7nzz7POecG5mJJKlbltRdgCSpPMNdkjrIcJekDjLcJamDDHdJ6iDDXZI6yHCXpA4y3CWpgwx3SeqgZXV945UrV+batWvr+vaS1Eq33377fZk5Mle72sJ97dq17N69u65vL0mtFBHfHKSd0zKS1EGGuyR1kOEuSR1kuEtSBxnuktRBc4Z7RHwwIg5GxJ3HeD4i4t0RMRERd0TE88qXKUmaj0FG7tcDG4/z/CXA+upjK/De4cuSJA1jzvPcM/MLEbH2OE02Ax/O3vv17YyIFRHxlMy8t1CNkjrgozu/ycHvP1R3GY3w0mefw3mrVyzo9yhxEdMq4EDf9mS17zHhHhFb6Y3uWbNmTYFvLakNDv7gId72qd7MbkTNxTTA2Wee1opwn+1Qzfqu25m5HdgOMDY25jtzS4vEQ4enAHjnr53HK392tOZqFocSZ8tMAqv7tkeBewq8rqSOOHz0KADLl3mC3slS4l96HHhNddbMhcADzrdL6vfwkd7IfflSw/1kmXNaJiJuAC4CVkbEJPDHwCkAmfk+YAdwKTABPAi8bqGKldROh6twP9WR+0kzyNkyl83xfAJvLFaRpM6ZDnenZU4e/6UlLbjDRw33k81/aUkL7rBz7iddbW/WIWlwU1PJVybv5+FHpuou5YTc+a3vA47cTybDXWqBz+35Nr/10dvrLmNoK04/pe4SFg3DXY3x7xP38foP7+aRo+0cnS6ko1PJ8mVLuP51P0fMet1g8604/RSectbj6i5j0TDc1Rj77/shDx4+ymtfsJbTly+tu5zG2fDUM3nBM1bWXYZawnBX4/zOi5/B2WecVncZUqu5uqHG8GZDUjmGuxqnrXPKUpMY7mqOdOwulWK4S1IHGe5qHN/MQRqe4a7GcFJGKsdwV+M4cJeGZ7irMVxPlcox3CWpgwx3NUZWQ/dwRVUamuEuSR1kuKtxHLdLwzPc1Riup0rlGO6S1EGGuxpj+lRI11Ol4RnuktRBhrsax1v+SsMz3NUYLqhK5Rjuah4H7tLQDHc1RnpzGakYw12SOshwV+N4KqQ0PMNdkjrIcFfjOHCXhme4qzFcT5XKMdwlqYMGCveI2BgR+yJiIiKumuX5NRFxa0R8OSLuiIhLy5eqrkt8sw6plDnDPSKWAtuAS4ANwGURsWFGs7cBN2Xm+cAW4D2lC5UkDW6QkfsFwERm7s/Mw8CNwOYZbRI4s3p8FnBPuRK12Dhul4a3bIA2q4ADfduTwPNntPkT4HMR8bvA44GLi1SnRcUFVamcQUbusw2kZv4aXgZcn5mjwKXARyLiMa8dEVsjYndE7D506ND8q9Wi4JS7NLxBwn0SWN23Pcpjp12uAG4CyMz/AE4DVs58oczcnpljmTk2MjJyYhWrsxy4S+UMEu67gPURsS4iltNbMB2f0eZu4KUAEfFseuHu0FySajJnuGfmEeBK4GZgL72zYu6KiOsiYlPV7K3AGyLiv4AbgNemt/jTCfLNOqThDbKgSmbuAHbM2Hdt3+M9wAvLlqbFxuGAVI5XqKpxXFCVhme4qzHSJVWpGMNdkjrIcFdjOOculWO4S1IHGe5qHBdUpeEZ7pLUQYa7JHWQ4a7GmL6o2StUpeEZ7pLUQYa7GscFVWl4hrsaw/PcpXIMdzWOA3dpeIa7GsOBu1SO4S5JHWS4qzGm59zDFVVpaIa7JHWQ4a7GcdwuDc9wV2P4Zh1SOYa7JHWQ4a7G+NGCar11SF1guEtSBxnuahxPhZSGZ7irMVxOlcox3CWpgwx3NYe3hZSKMdwlqYMMdzWKa6lSGYa7GsNJGakcw12N4sBdKsNwV2O4niqVY7hLUgcZ7mqMJL06VSpkoHCPiI0RsS8iJiLiqmO0+fWI2BMRd0XE35UtU5I0H8vmahARS4FtwMuASWBXRIxn5p6+NuuBq4EXZub3IuLshSpY3ea4XSpjkJH7BcBEZu7PzMPAjcDmGW3eAGzLzO8BZObBsmVqMXBBVSpnkHBfBRzo256s9vV7JvDMiPi3iNgZERtLFShJmr85p2WY/S/lmWOsZcB64CJgFPhiRJybmff/2AtFbAW2AqxZs2bexarbEq9QlUoZZOQ+Cazu2x4F7pmlzacz85HM/Dqwj17Y/5jM3J6ZY5k5NjIycqI1S5LmMEi47wLWR8S6iFgObAHGZ7T5FPBigIhYSW+aZn/JQrU4hEuqUhFzhntmHgGuBG4G9gI3ZeZdEXFdRGyqmt0MfCci9gC3An+Qmd9ZqKLVTS6oSuUMMudOZu4AdszYd23f4wTeUn1IJ86Bu1SEV6iqMdL7QkrFGO6S1EGGu5ojnZWRSjHcJamDDHc1ihcxSWUY7moMl1Olcgx3Seogw12NkZleoSoVYrhLUgcZ7moUF1SlMgx3NYb3lpHKMdzVKA7cpTIMdzWGA3epHMNdkjrIcFejhCuqUhGGuxrDBVWpHMNdjeK4XSrDcFdj+GYdUjmGuyR1kOGuxsjEeRmpEMNdkjrIcFejOHCXyjDcJamDDHdJ6iDDXY2RmV6hKhViuEtSBxnuahQH7lIZhrsaw+tTpXIMdzWKA3epDMNdjeFdIaVyDHdJ6iDDXY3iqZBSGYa7GsNb/krlGO5qFMftUhkDhXtEbIyIfRExERFXHafdKyMiI2KsXIlaLFxQlcqZM9wjYimwDbgE2ABcFhEbZml3BvAm4LbSRUqS5meQkfsFwERm7s/Mw8CNwOZZ2v0Z8HbgoYL1aRFJvEJVKmWQcF8FHOjbnqz2PSoizgdWZ+ZnjvdCEbE1InZHxO5Dhw7Nu1hJ0mAGCffZxlKPzo5GxBLgXcBb53qhzNyemWOZOTYyMjJ4lVpEHLpLJQwS7pPA6r7tUeCevu0zgHOBf4mIbwAXAuMuqmq+XFCVyhkk3HcB6yNiXUQsB7YA49NPZuYDmbkyM9dm5lpgJ7ApM3cvSMWSpDnNGe6ZeQS4ErgZ2AvclJl3RcR1EbFpoQvUYpIuqEqFLBukUWbuAHbM2HftMdpeNHxZkqRheIWqGsWBu1SG4a7GcEFVKsdwV6M45y6VYbirMRy5S+UY7pLUQYa7GiNJwiVVqQjDXZI6yHBXo7igKpVhuKsxXFCVyjHcJamDDHc1RuIVqlIphrskdZDhrkYJV1SlIgx3NYYLqlI5hrskdZDhrsZIHLpLpRjuktRBhrsaxfVUqQzDXc3hrIxUjOGuRnHkLpVhuKsxHLhL5RjuktRBhrsaI9M365BKMdwlqYMMdzWKC6pSGYa7GsMFVakcw12SOshwV2Nk+mYdUimGuyR1kOGuRvHNOqQyDHc1hguqUjmGuxrFcbtUhuGuxkjfZ08qZqBwj4iNEbEvIiYi4qpZnn9LROyJiDsi4paIeFr5UiVJg1o2V4OIWApsA14GTAK7ImI8M/f0NfsyMJaZD0bEbwNvB35jIQpWOxydSh48fGReX3PkqOdCSqXMGe7ABcBEZu4HiIgbgc3Ao+Gembf2td8JvLpkkWqfyz/4Jf514r55f92zzjljAaqRFp9Bwn0VcKBvexJ4/nHaXwF8dpii1H53f/dBfnrVWWx+7lPn9XXPXb1igSqSFpdBwn22P5RnXfmKiFcDY8AvHeP5rcBWgDVr1gxYotro6FTyzHPO4PW/8PS6S5EWpUEWVCeB1X3bo8A9MxtFxMXANcCmzHx4thfKzO2ZOZaZYyMjIydSr1oiM1ni/LlUm0HCfRewPiLWRcRyYAsw3t8gIs4H/ppesB8sX6baZiphiVebSrWZM9wz8whwJXAzsBe4KTPviojrImJT1ewdwBOAj0fEVyJi/Bgvp0ViKpMlXkUh1WaQOXcycwewY8a+a/seX1y4LrWcI3epXo6ttCCmMg13qUaGuxbElAuqUq0Mdy2Iqan09r1SjQx3LYh0zl2qleGuBXE0k6X+dEm18ddPC8IFValehrsWxFT6lnlSnQx3LQhvPyDVy3DXgvAiJqlehrsWxNGpZIlDd6k2hruKm34vVLNdqo/hruKmqrv9Oy0j1cdwV3FTjtyl2hnuKu7RcDfdpdoY7ipuaqr32WkZqT6Gu4pzWkaqn+Gu4n4U7qa7VBfDXcVNny3j7Qek+hjuKm76PPelZrtUG8NdxR2d8mwZqW6Gu4pzWkaqn+Gu4rz9gFS/ZXUXMF837TrA33xxf91l6DiOTHm2jFS31oX7itNPYf05T6i7DM3hvNGzeNFPrqy7DGnRal24v/w5T+blz3ly3WVIUqM55y5JHWS4S1IHGe6S1EGGuyR1kOEuSR1kuEtSBxnuktRBhrskdVBM3wfkpH/jiEPAN0/wy1cC9xUsp072pZm60peu9APsy7SnZebIXI1qC/dhRMTuzByru44S7EszdaUvXekH2Jf5clpGkjrIcJekDmpruG+vu4CC7EszdaUvXekH2Jd5aeWcuyTp+No6cpckHUfrwj0iNkbEvoiYiIir6q5nPiJidUTcGhF7I+KuiHhztf9JEfH5iPha9fmJddc6iIhYGhFfjojPVNvrIuK2qh9/HxHL665xEBGxIiI+ERFfrY7Nz7f4mPx+9bN1Z0TcEBGnteW4RMQHI+JgRNzZt2/W4xA9765y4I6IeF59lT/WMfryjupn7I6I+MeIWNH33NVVX/ZFxC+XqKFV4R4RS4FtwCXABuCyiNhQb1XzcgR4a2Y+G7gQeGNV/1XALZm5Hril2m6DNwN7+7b/HHhX1Y/vAVfUUtX8/RXwT5n5U8B59PrUumMSEauANwFjmXkusBTYQnuOy/XAxhn7jnUcLgHWVx9bgfeepBoHdT2P7cvngXMz82eA/wGuBqgyYAvwnOpr3lNl3VBaFe7ABcBEZu7PzMPAjcDmmmsaWGbem5n/WT3+Ab0QWUWvDx+qmn0I+NV6KhxcRIwCvwK8v9oO4CXAJ6ombenHmcAvAh8AyMzDmXk/LTwmlWXA4yJiGXA6cC8tOS6Z+QXguzN2H+s4bAY+nD07gRUR8ZSTU+ncZutLZn4uM49UmzuB0erxZuDGzHw4M78OTNDLuqG0LdxXAQf6tierfa0TEWuB84HbgHMy817o/QcAnF1fZQP7S+APgalq+yeA+/t+eNtybJ4OHAL+tppien9EPJ4WHpPM/BbwTuBueqH+AHA77Twu0451HNqeBb8JfLZ6vCB9aVu4xyz7Wne6T0Q8AfgH4Pcy8/t11zNfEfEK4GBm3t6/e5ambTg2y4DnAe/NzPOBH9KCKZjZVPPRm4F1wFOBx9ObvpipDcdlLm39eSMirqE3Rfux6V2zNBu6L20L90lgdd/2KHBPTbWckIg4hV6wfywzP1nt/vb0n5TV54N11TegFwKbIuIb9KbGXkJvJL+img6A9hybSWAyM2+rtj9BL+zbdkwALga+npmHMvMR4JPAC2jncZl2rOPQyiyIiMuBVwCvyh+dh74gfWlbuO8C1ler/8vpLUKM11zTwKp56Q8AezPzL/qeGgcurx5fDnz6ZNc2H5l5dWaOZuZaesfgnzPzVcCtwCurZo3vB0Bm/h9wICKeVe16KbCHlh2Tyt3AhRFxevWzNt2X1h2XPsc6DuPAa6qzZi4EHpievmmqiNgI/BGwKTMf7HtqHNgSEadGxDp6i8RfGvobZmarPoBL6a00/y9wTd31zLP2F9H7c+sO4CvVx6X05qtvAb5WfX5S3bXOo08XAZ+pHj+9+qGcAD4OnFp3fQP24bnA7uq4fAp4YluPCfCnwFeBO4GPAKe25bgAN9BbK3iE3mj2imMdB3pTGduqHPhvemcI1d6HOfoyQW9uffp3/3197a+p+rIPuKREDV6hKkkd1LZpGUnSAAx3Seogw12SOshwl6QOMtwlqYMMd0nqIMNdkjrIcJekDvp/HVkjMryH5nUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "cumulativegraph(data,(1,1),120)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "probabilitygraph(data2,(1,1),6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
